/**
 * 常用方法封装 请求，文件上传等
 * @author echo. 
 **/

const tui = {
	//基础接口地址
	interfaceUrl: function() {
		const url = {
			developmentUrl: "http://10.108.12.13/", //本地开发环境
      stageUrl: "http://test.sijibang.club:65528/mark/", //测试环境
      // stageUrl:"http://10.108.17.161/mark/",
			proUrl: "https://energy.anji-navinfo.cn/oilsStationApplet" //生产环境
		}
		return url.developmentUrl
	},
	
//静态资源服务器图片文件路径
	// imgPath: function(){
	// 	return 'https://egc.clw9.club/nfpFileDev/carTeamApplets/'
	//  },
	toast: function(text, duration, success) {
		wx.showToast({
			title: text || "出错啦~",
			icon: success ? 'success' : 'none',
			duration: duration || 2000
		})
	},
	modal: function(title, content, showCancel, callback, confirmColor, confirmText) {
    wx.showModal({
			title: title || '提示',
			content: content,
			showCancel: showCancel,
			cancelColor: "#555",
			confirmColor: confirmColor || "#5677fc",
			confirmText: confirmText || "确定",
			success(res) {
				if (res.confirm) {
					callback && callback(true)
				} else {
					callback && callback(false)
				}
			}
		})
	},
  // copy(data,msg){
  //   wx.setClipboardData({
  //     data: data,
  //     success(res) {
  //       wx.getClipboardData({
  //         success(res) {
  //           msg && tui.toast(msg)
  //         }
  //       })
  //     }
  //   })
  // },
	isAndroid: function() {
		const res = wx.getSystemInfoSync();
		return res.platform.toLocaleLowerCase() == "android"
	},
	constNum: function() {
		let time = 0;
		time = this.isAndroid() ? 300 : 0;
		return time
	},
	delayed: null,
	showLoading: function(title, mask = true) {
		wx.showLoading({
			mask: mask,
			title: title || '请稍候...'
		})
	},
	/**
	 * 请求数据处理
	 * @param string url 请求地址
	 * @param string method 请求方式
	 *  GET or POST
	 * @param {*} postData 请求参数
	 * @param bool isDelay 是否延迟显示loading
	 * @param bool isForm 数据格式
	 *  true: 'application/x-www-form-urlencoded'
	 *  false:'application/json'
	 * @param bool hideLoading 是否隐藏loading
	 *  true: 隐藏
	 *  false:显示
	 */
	request: function(url, method, postData, isForm) {
   
		//接口请求
		return new Promise((resolve, reject) => {
			wx.showLoading({ title: '请稍等...', mask: true })
			wx.request({
				url: tui.interfaceUrl()+ url,
				data: postData,
				header: {
					'content-type': isForm ? 'application/x-www-form-urlencoded' : 'application/json',
          'authorization':tui.getToken()==""?'': "Bearer " + tui.getToken()
				},
				method: method, //'GET','POST'
				dataType: 'json',
				success: (res) => {
          // console.log(res,'asdasdsa')
					//token失效时,跳转登陆界面
					if (res.data.code === 20003||res.data.code ===40003) {
						wx.clearStorageSync()
						tui.modal("","登录信息已失效，请重新登录", false, () => {
							wx.reLaunch({
								url: '/pages/login/login'
							})
						})
						wx.hideLoading();
						return;
					}
					if(res.data.code === 1001 || res.data.code === 1003 || res.data.code === 1002||res.data.code === 20001) {
            // let par={
            //   title:res.data.message,
            //   duration:5000
            // }
            setTimeout(()=>{
              tui.toast(res.data.message);
            },500)
            // wx.showToast({
            //   title:'ss',
            //   icon: 'none',
            //   duration: 5000
            // })
            // tui.toast(res.data.message);
            // 注释掉是因为,有的地方不需要提示,或者改了提示
            // console.log(res.data.message);
					}
					wx.hideLoading();
					resolve(res.data)
				},
				fail: (res) => {
					tui.toast("网络不给力，请稍后再试~")
					reject(res)
				}
			})
		})
	},
	/**
	 * 上传文件
	 * @param string url 请求地址
	 * @param string src 文件路径
	 */
	uploadFile: function(url, src) {
    let that = this
		return new Promise((resolve, reject) => {
			wx.uploadFile({
				url: tui.interfaceUrl() + url,
				filePath: src,
				name: 'file',
				header: {
					'token': tui.getToken(),
					'content-type': 'multipart/form-data'
				},
				formData: null,
				success: function(res) {
					resolve(res.data);			
				},
				fail: function(res) {
					reject(res)
					that.toast(res.msg);
				}
			})
		})
	},
	//设置token
	setToken: function(token) {
		wx.setStorageSync("tokenD",token);
	},
	//获取token
	getToken() {
		return wx.getStorageSync("tokenD")
	},
	//删除token
	removeToken(){
		return wx.removeStorageSync('tokenD')
	},
	//判断是否绑定
	isLogin: function() {
		return wx.getStorageSync("tokenD") ? true : false
	},
	//跳转页面，校验绑定状态
	href(url, isVerify) {
		if (isVerify && !tui.isLogin()) {
			wx.reLaunch({
				url: '/pages/login/login'
			})
		} else {
			wx.navigateTo({
				url: url
			});
		}
	},
	  //检查输入文本，限制只能为数字并且数字最多带2位小数
  checkInputText: function (text) {
    const reg = /^(\.*)(\d+)(\.?)(\d{0,2}).*$/g;
    if (reg.test(text)) { //正则匹配通过，提取有效文本
      text = text.replace(reg, '$2$3$4');

    } else { //正则匹配不通过，直接清空
      text = '';
    } //返回符合要求的文本（为数字且最多有带2位小数）
    return text;
  },
}

export default tui